package Hot_100;/*
给你一个整数，将其转为罗马数字。
来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/integer-to-roman
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
* */

public class T12_intToRoman {
    public static void main(String[] args) {
        String s = intToRoman_test1(1994);
        System.out.println(s);
    }

    /*
        其实就有点像日期题目那种凑数，题解上说这是贪心算法...
    * */
    static String intToRoman_test1(int num) {
        String s="";
        int[] keys = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};    //本来想用HashMap，但是这个东西是无序的...
        String[] values = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};

        for (int i = 0; i < keys.length; i++) {
            while (num >= keys[i]) {
                s+=values[i];
                num-=keys[i];
            }
            if (num == 0) {
                break;
            }
        }
        return s;
    }
}
